package main

import (
	"fmt"
)

type testInterfacce interface {
	test1Interfacce
	test2Interfacce
}

type test1Interfacce interface {
	Say()
}

type test2Interfacce interface {
	Say()
}

type Stu struct {
	Name string
}

type Interger int

func (i Interger) Say() {
	fmt.Println("Integer say")
}

func (stu Stu) Say() {
	fmt.Println("stu say ...")
}

//
//func (stu *Stu) Say() {
//	fmt.Println("stu say ...")
//}

type T interface {
}

func main() {
	//可以这样使用
	var a testInterfacce = Stu{}
	//var a testInterfacce = &Stu{}
	a.Say()

	//只要是自定义数据结构也可以实现，具体的接口
	var i Interger = 10
	var b testInterfacce = i
	b.Say()

	//空接口，接受任何类型的赋值
	var t T = Stu{}
	fmt.Println(t)

}
